Generally, a cryptographic hash function is a compression function, which receives a bit string of arbitrary length and outputs a bit string of fixed length. The cryptographic hash function is for increasing security and efficiency of a cryptographic system.
The cryptographic hash function is used in various cryptographic systems such as internet banking, digital signature, message authentication code, key exchange algorithm, key generation algorithm, and pseudo random number generator, and the like. In the sense that safety of such cryptographic systems is based on that of hash function, it is important to design a secure hash function.
Currently, NIST (National Institute of Standards and Technology) recommends using SHA-224/256/384/512, outputs of which have 224, 256, 384, and 512 bits respectively, instead of MD5 or SHA-1. The NIST is currently undertaking the Cryptographic Hash Project for developing SHA-3 for 6 years from 2007 to 2012. As shown in the NIST's project, it is very necessary to develop a new secure and efficient hash function.
Meanwhile, block cipher, which is most commonly used among symmetric key algorithms, is an algorithm for ensuring confidentiality by encrypting data using a secret key shared between a transmitter and a receiver.
A representative block cipher is AES (Advanced Encryption Standard), which is the federal standard cipher. The AES is the next-generation standard algorithm to replace the DES (Data Encryption Standard), which has been used over 20 years as the federal standard cipher. The DES is developed by IBM in 1972 to protect computer data under the supervision of NBS (National Bureau of Standards), which is a former body of the NIST.
Since granted as the federal standard and re-granted every five years, the DES had existed as the standard. However, after 1997, as the security problem of the DES came to the fore, NIST started to develop AES as a replacement of the DES. AES has been granted as the US federal standard cryptographic algorithm, and been used worldwide.
To construct a secure cryptographic system, a block cipher and a hash function ensuring confidentiality and integrity are necessary. However, according to conventional cryptographic systems, a block cipher and a hash function are constructed as separate algorithms, and it is difficult to implement two primitives at the same time under a resource-limited environment such as RFID/USN of a ubiquitous computing environment.
For example, even though the hash function SHA and block cipher AES are US federal standard cryptographic algorithms, those two algorithms need to be implemented independently because design methods thereof are different from each other.